package ve.edu.ucla.dals.servicio;

import ve.edu.ucla.dals.modelo.ConexionSQL;
import ve.edu.ucla.dals.servicio.api.Autenticacion;
import ve.edu.ucla.dals.servicio.api.Facturacion;
import ve.edu.ucla.dals.servicio.api.Imagen;
import ve.edu.ucla.dals.servicio.api.mayoristas.DatosMayorista;
import ve.edu.ucla.dals.servicio.api.mayoristas.ListadoMayoristas;
import ve.edu.ucla.dals.servicio.api.operarios.DatosOperario;
import ve.edu.ucla.dals.servicio.api.operarios.ListadoOperarios;
import ve.edu.ucla.dals.servicio.api.propietarios.DatosPropietario;
import ve.edu.ucla.dals.servicio.api.propietarios.ListadoPropietarios;
import ve.edu.ucla.dals.servicio.api.transportistas.DatosTransportista;
import ve.edu.ucla.dals.servicio.api.transportistas.ListadoTransportistas;
import ve.edu.ucla.dals.servicio.api.unidades.DatosUnidad;
import ve.edu.ucla.dals.servicio.api.unidades.ListadoUnidades;
import ve.edu.ucla.dals.servicio.server.DispatchConfigurator;
import ve.edu.ucla.dals.servicio.server.ServletDispatcher;

public class ManejadorDespacho implements DispatchConfigurator {
	private final ConexionSQL conexionSQL;
	
	public ManejadorDespacho(ConexionSQL conexionSQL) {
		this.conexionSQL = conexionSQL;
	}
	
	@Override
	public void configure(ServletDispatcher dispatcher) {
		dispatcher
			.add("/autenticacion", new Autenticacion(conexionSQL))
			.add("/facturacion", new Facturacion(conexionSQL))
			.add("/imagen", new Imagen(conexionSQL))
			.add("/mayoristas/datos", new DatosMayorista(conexionSQL))
			.add("/mayoristas/listado", new ListadoMayoristas(conexionSQL))
			.add("/transportistas/datos", new DatosTransportista(conexionSQL))
			.add("/transportistas/listado", new ListadoTransportistas(conexionSQL))
			.add("/operarios/datos", new DatosOperario(conexionSQL))
			.add("/operarios/listado", new ListadoOperarios(conexionSQL))
			.add("/propietarios/datos", new DatosPropietario(conexionSQL))
			.add("/propietarios/listado", new ListadoPropietarios(conexionSQL))
			.add("/unidades/datos", new DatosUnidad(conexionSQL))
			.add("/unidades/listado", new ListadoUnidades(conexionSQL));
	}
}
